
import { DateUtils } from './utils/date';
import { ColorUtils } from './utils/color';
import { WebUtils } from './utils/web';
import { Utils } from './utils/utils';
import { Event } from './utils/event';
import { Platform } from './utils/platform';
import { ImageUtils } from './utils/image';
import { FileUtils } from './utils/file';
import { HttpClient } from './utils/http';
import { FormControl } from './utils/form/FormControl';
import { FormGroup } from './utils/form/FormGroup';
import { FormArray } from './utils/form/FormArray';
import { FormBuilder } from './utils/form/FormBuilder';
import { FormUtils } from './utils/form/FormUtils';
import { Validators } from './utils/form/Validators';
import ScrollPage from './components/ScrollPage/ScrollPage';
import CdnImage from './components/CdnImage/CdnImage';
import Upload from './components/Upload/Upload';
import ImagePreview from './components/ImagePreview/ImagePreview';
import JSErrorPage from './components/JSErrorPage/JSErrorPage';
import AntdTheme from './components/AntdTheme/AntdTheme';
import ScreenModal from './components/modals/Screen/Screen.modal';
import Input from './components/forms/Input';
import FormLabel from './components/forms/Label';
import Select from './components/forms/Select';
import Textarea from './components/forms/Textarea';
import Date from './components/forms/Date';
import Number from './components/forms/Number';
import Radio from './components/forms/Radio';
import Currency from './components/forms/Currency';;
import Password from "./components/forms/Password";
import Dropdown from "./components/forms/Dropdown";
import AutoComplete from "./components/forms/AutoComplete";
import Auto from "./components/forms/Auto";
import Checkbox from "./components/forms/Checkbox";
import Picker from "./components/forms/Picker";
import StartEnd from './components/forms/StartEnd';
import DatePicker from './components/forms/DatePicker';
import CascadePicker from './components/forms/CascadePicker';
import TextareaModal from './components/forms/TextareaModal';
import MsgBox from './utils/msgBox';


/** 工具 */
export { ColorUtils } from './utils/color';
export { WebUtils } from './utils/web';
export { Utils } from './utils/utils';
export { Event } from './utils/event';
export { Platform } from './utils/platform';
export { ImageUtils } from './utils/image';
export { FileUtils } from './utils/file';
export { HttpClient } from './utils/http';
export { FormArray } from "./utils/form/FormArray";
export { FormBuilder } from "./utils/form/FormBuilder";
export { FormControl } from "./utils/form/FormControl";
export { FormGroup } from "./utils/form/FormGroup";
export { FormUtils } from "./utils/form/FormUtils";
export { Validators } from "./utils/form/Validators";
/** 组件 */
export const Components = {
    /** 滚动页面，一般手机端使用 */
    ScrollPage,
    /** cdn 图片 */
    CdnImage,
    /** 文件上传 */
    Upload,
    /** 图片预览 */
    ImagePreview,
    /** js 报错页 */
    JSErrorPage,
    /** antd 自定义主题 */
    AntdTheme,
    /** 弹框 */
    ScreenModal,
    forms: {
        FormLabel,
        Input,
        Select,
        Textarea,
        Date,
        Number,
        Currency,
        Password,
        Radio,
        Dropdown,
        AutoComplete,
        Auto,
        Checkbox,
        Picker,
        StartEnd,
        DatePicker,
        CascadePicker,
        TextareaModal,
    },
}

export default {
    /** 常用工具 */
    Utils,
    /** 日期工具 */
    DateUtils,
    /** 颜色工具 */
    ColorUtils,
    /** 事件 */
    Event,
    /** 常用web工具 */
    WebUtils,
    /** 浏览器信息 */
    Platform,
    /** 图片处理工具 */
    ImageUtils,
    /** 文件处理工具 */
    FileUtils,
    /** 网络请求 */
    HttpClient,
    /** 消息框 */
    MsgBox,
    /** 响应式表单 */
    form: {
        /** FormControl */
        FormControl,
        /** FormGroup */
        FormGroup,
        /** FormArray */
        FormArray,
        /** FormBuilder */
        FormBuilder,
        /** 工具 */
        FormUtils,
        /** 验证器 */
        Validators,
    },
    /** 组件 */
    components: { ...Components },
}
